Zoomed Video Software Architecture
A QuickTime Video Digitizer is used as the building block to enable zoomed video data in an Apple PowerBook. The digitizer controls the particular ZV-capable video controller and interacts with a ZV PC-card driver in order to preview or record live video.
The video digitizer, written by Apple, contains three major blocks:
- A QuickTime Video Digitizer object
- A video controller-specific scaler object
- A generic Zoomed-Video decoder object
The QuickTime Video Digitizer object provides the standard API for video digitizers, as specified in the Inside Macintosh: QuickTime components book. The QuickTime sequence grabber component interacts with the video digitizer and allows applications to preview or record live video. The video digitizer object calls the scaler object and the decoder object to enable the previewing or recording of video.
The scaler object interacts with a ZV-capable video controller. Among other things, it tells the controller how to scale the incoming data and where to place it.
The generic zoomed-video decoder interacts with the 3rd party ZV driver. It queries the driver for information and returns it to the video digitizer object. This document describes the API that this component uses in communicating with the ZV driver. Figure 1 shows the relationships between the different objects:
Figure 1 Zoomed Video Components
The ZV driver is a native driver, as described in Designing PCI cards and Drivers for Power Macintosh Computers,. Driver writers should be familiar with this document, as it explains how native drivers are created and loaded in the system.
When a ZV PC-Card is inserted into a PowerBook, the Card and Socket services creates the necessary name registry nodes for the card and also creates a property, ZoomedVideo, for that card. Cards and Sockets services then uses the Driver Loader Library (DLL) to load the driver into the unit table. The DLL performs versioning, so that only the most recent driver is loaded, even if multiple drivers for that card are found. Later on, when an application opens the ZV video digitizer, the digitizer will look for the ZV driver and will issue status and control calls to enable the zoomed video data stream and to get at the capabilities of the ZV card. A 3rd party only needs to implement the ZV driver. All other software pieces are provided by Apple.